Skip to content

chore(deps): bump @p2pdotme/sdk to 1.2.7 (subject-bound signatures) - #69

Draft
Software-Artist-Aash wants to merge 3 commits into
mainfrom
security/bump-sdk-subject-binding
Draft

chore(deps): bump @p2pdotme/sdk to 1.2.7 (subject-bound signatures)#69
Software-Artist-Aash wants to merge 3 commits into
mainfrom
security/bump-sdk-subject-binding

Conversation

@Software-Artist-Aash

Copy link
Copy Markdown
Collaborator

Version bump only — picks up p2pdotme/p2pdotme-sdk#52, which binds the subject address into the fraud-engine EIP-191 signed message.

Why

The signed message was {action}:{signer}:{ts} — it committed to the signing key but not to the account the request acts for. For AA smart wallets the signer is the admin EOA while the subject is the smart account, so a signature captured for one account was replayable against another inside the backend’s 5-minute freshness window. Now: {action}:{signer}:{subject}:{ts}.

No application code changes

Both addresses were already carried on FraudEngineSigner (address = subject, signerAddress = admin EOA), so the change is entirely internal to getSignedHeaders. This repo only needs the dependency.

⚠️ Blocked — do not merge yet

@p2pdotme/sdk@1.2.7 is not published; npm is still on 1.2.6. Before merging:

  1. Merge and release p2pdotme-sdk#52
  2. Re-run the package manager here to regenerate the lockfile — this PR only edits package.json
  3. Undraft and merge

Context

Part of the fraud-engine wallet-auth fix (p2pdotme/fraud-engine#41), where the backend additionally verifies on-chain that the signer is an admin of the subject smart account — that is the control that actually closes the hole; the message binding is defence in depth against cross-subject replay.

The backend accepts both message formats during rollout, so there is no ordering constraint against any other client and no window where anything breaks.

🤖 Generated with Claude Code

Software-Artist-Aash and others added 3 commits July 28, 2026 02:07
Picks up p2pdotme/p2pdotme-sdk#52, which binds the subject address
into the fraud-engine EIP-191 signed message:
`{action}:{signer}:{subject}:{ts}` instead of `{action}:{signer}:{ts}`.

No application code changes. Both addresses were already carried on
FraudEngineSigner, so the change is internal to getSignedHeaders and
this repo only needs the dependency.

Part of the fraud-engine wallet-auth fix (p2pdotme/fraud-engine#41),
where the backend additionally verifies on-chain that the signer is
an admin of the subject smart account. The backend accepts both
message formats during rollout, so this carries no ordering
constraint against any other client.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.2.7 was already published from an unrelated change and does not
contain the wallet-signature subject binding, so pinning it would be
a silent no-op. 1.2.8 is the release that carries it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
widgets CI installs with `npm ci`, which refuses to run when
package.json and the lock disagree:

  Invalid: lock file's @p2pdotme/sdk@1.1.6 does not satisfy @p2pdotme/sdk@1.2.8

The bun-based clients don't need this -- bun install resolves and
rewrites the lockfile even with CI=true -- but npm ci is strict, so
widgets does.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant